package weixinkeji.dev.h.login;

import java.util.HashSet;
import java.util.Set;
import sys.wx.ann.hm.H;
import sys.wx.ann.hm.M;
import sys.wx.ann.power.bean.IMYUserPowerSet;
import sys.wx.c.ATR;
import sys.wx.c.components.cv.CV;
import sys.wx.xy.XY;
import weixinkeji.dev.dc.DCPower;
import weixinkeji.dev.dc.base.user.bean.FWY;
import weixinkeji.dev.dc.base.user.so.UserSo;
import weixinkeji.dev.h.check.LoginCheck;
import weixinkeji.dev.h.vo.LoginMsg;

/**
 *
 * @author imyweb
 */
@H("user/fwy")
public class FWYLogin {

    ATR a;

    public FWYLogin(ATR a) {
        this.a = a;
    }

    @M("/login")//user/fwy/login.imy
    public String userLogin() {
        LoginMsg lm = CV.getObjectByFields(LoginMsg.class, a.request, new LoginCheck().Login());
        if (null == lm) {
            //格式检验不通过
            a.session.removeAttribute(XY.SAFE_CODE);
            return null;
        } else if (null == a.session.getAttribute(XY.SAFE_CODE)) {
            //后台验证码没有——过期。需要重新刷新验证码
            a.printOne(4);
            return null;
        } else if (!a.session.getAttribute(XY.SAFE_CODE).equals(lm.code)) {
            //验证码校对不通过 前台输入与后台输入不一致
            a.printOne(3);
            return null;
        }
        //校对完毕。移除后台验证码
        a.session.removeAttribute(XY.SAFE_CODE);
        
        FWY fwy = UserSo.fwyLogin(lm);
        //查无此账号。或账号已经停用
        if (null == fwy.getFwy_account()) {
            a.printOne(1);
            return null;
        }

        Set<String> set = new HashSet();
        set.add(DCPower.ID_FWY);
        
        //人员登陆会话
        a.session.setAttribute(XY.SESSION_LOGIN, fwy);

        //人员权限数据
        a.session.setAttribute(XY.LOGIN_POWER, new IMYUserPowerSet(set, 9));

        a.printOne(0);
        return null;///
    }
}
